package br.com.clebao.droidcontroler;

import java.util.List;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import br.com.clebao.droidcontroler.conf.Configuracoes;
import br.com.clebao.droidcontroler.modelo.Produto;
import br.com.clebao.droidcontroler.persistencia.DAOProduto;
import br.com.clebao.droidcontroler.ws.GetWebProduto;

public class ProdutoPrincipal extends ListActivity {

	DAOProduto dao = null;
	ProgressDialog prog;
	boolean carregando;
	Thread loadData;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.produtosmain);
		prog = ProgressDialog.show(ProdutoPrincipal.this, "Aguarde",
				"Aguarde carregado produtos!", true, true);
		dao = DAOProduto.getDaoProduto(this);



		CarregaDadosProduto carr = new CarregaDadosProduto();
		carr.execute(this);


	}

	private void fillData() {

		dao.openDB();
		Cursor cur = dao.findAllObject();
		startManagingCursor(cur);

		String[] from = new String[] { "_id", "descricao" };
		int[] to = new int[] { R.id.textView1, R.id.textView2 };

		SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
				R.layout.listview_row, cur, from, to);

		setListAdapter(sca);
		dao.closeDB();

		carregando = false;

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater mi = getMenuInflater();
		mi.inflate(R.menu.menuoptions_produtos, menu);
		mi.inflate(R.menu.menu_configuracoes, menu);

		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.produto_import:
			importProdutos();
			break;
		case R.id.Menu_config:
			Intent i = new Intent(this, Configuracoes.class);
			startActivity(i);
			break;
		}

		return super.onOptionsItemSelected(item);
	}

	private void importProdutos() {
		int qtdProdutoImp = 0;
		int qtdInserDB = 0;

		GetWebProduto webProd = new GetWebProduto(this);
		List<Produto> produtos = webProd.getListProdutoWS();

		qtdProdutoImp = produtos.size();
		dao.openDB();

		for (Produto produto : produtos) {
			if (dao.addORUpdateProduto(produto)) {
				qtdInserDB++;
			}
		}
		dao.closeDB();

		Toast.makeText(
				this,
				"Foram importador " + qtdProdutoImp + "\n e foram inseridos "
						+ qtdInserDB, Toast.LENGTH_LONG).show();

		fillData();

	}

	
	private class CarregaDadosProduto extends AsyncTask<Context, Void, Cursor> {
		Context con;
		@Override
		protected Cursor doInBackground(Context... params) {
			for (Context context : params) {
				con = context;
				dao.openDB();
				Cursor cur = dao.findAllObject();
				startManagingCursor(cur);
				return cur;
			}
			return null;
		}

		@Override
		protected void onPostExecute(Cursor result) {
			// TODO Auto-generated method stub
			super.onPostExecute(result);
			String[] from = new String[] { "_id", "descricao" };
			int[] to = new int[] { R.id.textView1, R.id.textView2 };

			Cursor ccc = result;
			
			SimpleCursorAdapter sca = new SimpleCursorAdapter(con, R.layout.listview_row, ccc, from, to);
			setListAdapter(sca);
			prog.dismiss();
			
			
		}

		


		
		
	}
	
	
}
